﻿using System.Collections.Generic;
using System.Runtime.Serialization;
using System.ServiceModel;

namespace MaxStoreShop.Server.Contracts
{
    [ServiceContract]
    public interface IUserService
    {
        [OperationContract]
        IEnumerable<User> GetUsers();

        [OperationContract]
        void AuthorizeUser(string userName, string password);
    }

    /// <summary>
    /// Представляет пользователя системы
    /// </summary>
    [DataContract]
    public class User
    {
        string _firstName;
        string _lastName;

        /// <summary>
        /// Имя пользователя
        /// </summary>
        [DataMember]
        public string FirstName
        {
            get { return _firstName; }
            set
            {
                _firstName = value;
                DisplayName = string.Format("{0} {1}", LastName, FirstName);
            }
        }

        /// <summary>
        /// Фамилия пользователя
        /// </summary>
        [DataMember]
        public string LastName
        {
            get { return _lastName; }
            set
            {
                _lastName = value;
                DisplayName = string.Format("{0} {1}", LastName, FirstName);
            }
        }

        /// <summary>
        /// Отображаемое полное имя пользователя
        /// </summary>
        [DataMember]
        public string DisplayName { get; private set; }

        /// <summary>
        /// Фотография пользователя
        /// </summary>
        [DataMember]
        public byte[] FotoRaw { get; set; }
    }
}
